# -*- coding: latin-1 -*-
import sys, time
from PyQt4.QtGui import QDialog,  QMessageBox
from PyQt4.QtSql import QSqlQuery
from PyQt4.QtCore import SIGNAL, QVariant

sys.path.append("../")

from vista.cronogramas_vista import Ui_FormCronograma

DEBUG = False
        
class cronograma_controlador(Ui_FormCronograma):
    def __init__(self, cronogramaModelo):
        self.widget = QDialog()
        self.setupUi(self.widget)
        
        # Connections
        self.widget.connect(self.pushButtonAgregarTarea, SIGNAL("clicked()"), 
             		    self.agregarTarea) 
        self.widget.connect(self.calendarWidgetTareas, SIGNAL("selectionChanged()"), 
             		    self.listarTareas) 
        self.widget.connect(self.pushButtonBorrarTarea, SIGNAL("clicked()"),
                            self.borrarTarea)
        self.widget.connect(self.tableViewtareas, SIGNAL("clicked(QModelIndex)"), self.activarCambios)

        self.cronograma=cronogramaModelo
        self.listarTareas()
        self.tableViewtareas.setModel(self.cronograma.model)
        self.tableViewtareas.setColumnHidden(self.cronograma.ID, True)
        self.tableViewtareas.setColumnHidden(self.cronograma.Fecha, True)
        self.ajustarDatosTabla()
    
    def activarCambios(self): 
        self.pushButtonBorrarTarea.setEnabled(True)   

    def listarTareas(self):
        fecha=self.calendarWidgetTareas.selectedDate().toString("yyyy-MM-dd")
        self.cronograma.listarTareas(fecha)
        
    def agregarTarea(self):
        if DEBUG : print "apreto el boton agregarTarea"
        tarea=self.textEdittarea.toPlainText()
        fecha=self.calendarWidgetTareas.selectedDate()
        query = QSqlQuery()
        query.prepare("INSERT INTO cronograma (fecha,descripcion)  VALUES  \
                    (:fecha, :descripcion)")
        query.bindValue(":fecha", QVariant(fecha)) 
        query.bindValue(":descripcion", QVariant(tarea)) 
        query.exec_()
        self.cronograma.model.select()
        self.tableViewtareas.resizeColumnsToContents()
        self.textEdittarea.setText("")
        self.ajustarDatosTabla()
    
    def ajustarDatosTabla(self):
        self.tableViewtareas.resizeColumnsToContents()
        self.tableViewtareas.setHorizontalHeader(self.tableViewtareas.horizontalHeader().setStretchLastSection(True))
        
    def borrarTarea(self):
        seleccionado=self.tableViewtareas.selectedIndexes()[0]
        record = self.cronograma.model.record(seleccionado.row())
        respuesta = QMessageBox.question(None, "Message", 
        "Esta seguro que desea borrar esta tarea?","No","Si","" ,  False,  True)
        if respuesta: 
            idCronograma = record.value("id").toInt() [0]
            self.cronograma.eliminarRegistro(idCronograma)
            self.textEdittarea.setText("")
            self.pushButtonBorrarTarea.setEnabled(False)   
            self.ajustarDatosTabla()
